Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота №6 Програмування, ч3

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
СІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2017
Тип роботи:
Лабораторна робота
Предмет:
Програмування алгоритмів цифрової обробки сигналів та зображень

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Звіт з лабораторної роботи № 6 з дисципліни: “Структури даних та алгоритми» На тему: “ Структура даних СПИСОК” Варіант 4 1. МЕТА РОБОТИ Вивчення фундаментальної абстрактної структури даних список. Набуття практичних навичок побудови списка, дослідження динаміки його вмісту та використання списків для розв'язання прикладних задач. 2. ЗАВДАННЯ 2.1 Постановка задачі Побудувати динамічну структуру даних список, реалізований за допомогою зв’язаних вузлів. Написати програму, яка будує лінійний зв’язаний список, що містить N випадкових цілих чисел з проміжку [111 ; 222] і вилучає з нього кожний другий елемент. 2.2 Алгоритм розв’язання задачі 2.2.1 Створюю новий проект C++ в середовищі розробки Visual Studio 2017 2.2.2 Моделюю список за допомогою зв’язаних вузлів, переписуючи основні операції роботи зі списком: void pushFront(DblLinkedList *list, void *data) //Додавання до голови void* popFront(DblLinkedList *list) //Видалення з голови void pushBack(DblLinkedList *list, void *value) //Додавання в кінець void* popBack(DblLinkedList *list) //Видалення з кінця Node* getNth(DblLinkedList *list, size_t index) //Повернення n-го елемента void insert(DblLinkedList *list, size_t index, void *value) //Додавання вузла void* deleteNth(DblLinkedList *list, size_t index) //Видалення вузла void printDblLinkedList(DblLinkedList *list, void(*fun)(void*))//Вивід списка void printInt(void *value) 2.2.3 Виконую індивідуальне завдання згідно з варіантом; 2.2.4 Закінчую створення програми та перевіряю правильність її виконання. 2.3 Результати виконання програми / Рис 2.3 Результат виконання програми ВИСНОВКИ Під час виконання лабораторної роботи я набув практичних навичок побудови списка, дослідив динаміку його вмісту та використання списка для розв'язання прикладних задач. ДОДАТКИ Файл plist.h #pragma once #include "stdafx.h" #include <iostream> using namespace std; typedef struct _Node { void *value; struct _Node *next; struct _Node *prev; } Node; typedef struct _DblLinkedList { size_t size; Node *head; Node *tail; } DblLinkedList; //Екземпляр структури DblLinkedList* createDblLinkedList() { DblLinkedList *tmp = (DblLinkedList*)malloc(sizeof(DblLinkedList)); tmp->size = 0; tmp->head = tmp->tail = NULL; return tmp; } //Видалення списку void deleteDblLinkedList(DblLinkedList **list) { Node *tmp = (*list)->head; Node *next = NULL; while (tmp) { next = tmp->next; free(tmp); tmp = next; } free(*list); (*list) = NULL; } //Додавання до голови void pushFront(DblLinkedList *list, void *data) { Node *tmp = (Node*)malloc(sizeof(Node)); if (tmp == NULL) { exit(1); } tmp->value = data; tmp->next = list->head; tmp->prev = NULL; if (list->head) { list->head->prev = tmp; } list->head = tmp; if (list->tail == NULL) { list->tail = tmp; } list->size++; } //Видалення з голови void* popFront(DblLinkedList *list) { Node *prev; void *tmp; if (list->head == NULL) { exit(2); } prev = list->head; list->head = list->head->next; if (list->head) { list->head->prev = NULL; } if (prev == list->tail) { list->tail = NULL; } tmp = prev->value; free(prev); list->size--; return tmp; } //Додавання в кінець void pushBack(DblLinkedList *list, void *value) { Node *tmp = (Node*)malloc(sizeof(Node)); if (tmp == NULL) { exit(3); } tmp->value = value; tmp->next = NULL; tmp->prev = list->tail; if (list->tail) { list->tail->next = tmp; } list->tail = tmp; if (list->head == NULL) { list->head = tmp; } list->size++; } //Видалення з кінця void* popBack(DblLinkedList *list) { Node *next; void *tmp; if (list->tail == NULL) { exit(4); } next = list->tail; list->tail = list->tail->prev; if (list->tail) { list->tail->next = NULL; } if (next == list->head) { list->head = NULL; }...
Антиботан аватар за замовчуванням

28.05.2019 18:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини